package com.amsp.oa.oademo.service;

import com.amsp.oa.oademo.entity.InternalCommunication;
import com.amsp.oa.oademo.vo.InternalCommunicationVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 内部联络单Service接口
 */
public interface InternalCommunicationService extends IService<InternalCommunication> {

    /**
     * 保存或更新内部联络单
     *
     * @param vo 内部联络单VO
     * @return 是否成功
     */
    boolean saveOrUpdateInternalCommunication(InternalCommunicationVO vo);

    /**
     * 批量保存或更新内部联络单
     *
     * @param voList 内部联络单VO列表
     * @return 是否成功
     */
    boolean batchSaveOrUpdateInternalCommunication(List<InternalCommunicationVO> voList);

    /**
     * 获取内部联络单详情
     *
     * @param id ID
     * @return 内部联络单VO
     */
    InternalCommunicationVO getInternalCommunicationDetail(Long id);

    /**
     * 分页查询内部联络单
     *
     * @param page 分页参数
     * @param vo   查询条件
     * @return 分页结果
     */
    Page<InternalCommunicationVO> getInternalCommunicationPage(Page<InternalCommunication> page,
            InternalCommunicationVO vo);

    /**
     * 删除内部联络单
     *
     * @param id ID
     * @return 是否成功
     */
    boolean deleteInternalCommunication(Long id);

    /**
     * 批量删除内部联络单
     *
     * @param ids ID列表
     * @return 是否成功
     */
    boolean batchDeleteInternalCommunication(List<Long> ids);
}